package ace.cmp.data.methodname.method.name.sql.core.resolver;

import ace.cmp.data.methodname.method.name.sql.core.model.MethodNameToQueryFilter;
import ace.cmp.data.methodname.method.name.sql.core.model.MethodNameToQuerySort;
import java.util.List;

/**
 * @author caspar
 * @date 2023/2/18 11:17 从方法名中解析过滤与排序元数据
 */
public interface MethodNameToPredicateResolver {

  /**
   * 获取解析的方法
   *
   * @return
   */
  String getMethodName();

  /**
   * 获取方法名中的过滤与排序信息字符串
   *
   * @return
   */
  String getPredicateSourceString();

  /**
   * 从方法名中解析过滤条件信息
   *
   * @return 过滤条件信息, 空或null代表没有
   */
  List<MethodNameToQueryFilter> getFilters();

  /**
   * 从方法名中解析排序信息
   *
   * @return 排序信息, 空或null代表没有
   */
  List<MethodNameToQuerySort> getSorts();
}
